package cn.lili.modules.promotion.service;

import cn.lili.modules.promotion.entity.dos.PromoCode;
import cn.lili.modules.promotion.entity.vos.CouponVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 优惠码业务层
 *
 * @author moxingjian
 * @version 1.0
 * @date 2023-10-30 14:14
 * <p>
 * 版本更新：
 * 更新版本号    更新人      更新时间      更新内容
 */
public interface PromoCodeService extends IService<PromoCode> {

    /**
     * 保存，需要先校验优惠码是否存在
     *
     * @param couponVO 参数
     */
    void saveByCoupon(CouponVO couponVO);

    /**
     * 根据优惠码查询
     *
     * @param promoCode 优惠码
     */
    PromoCode getByPromoCode(String promoCode);

    /**
     * 根据优惠券ID查询
     *
     * @param couponId 优惠券ID
     * @return 优惠码
     */
    PromoCode getByCouponId(String couponId);

    /**
     * 根据优惠券ID列表查询
     *
     * @param couponIds 优惠券ID列表
     * @return 优惠码
     */
    List<PromoCode> listByCouponIds(List<String> couponIds);
}
